<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
</html>
<script>
// 与函数一样 calss 也可以使用表达式的形式定义  采用class表达式 可以写出立即执行的Class!! 
// 注意与函数表达式类似 类表达式在他们被求值前也不能使用(即赋值变量 之前调用) 但 与函数定义不同 虽然函数声明可以提升 但类不能 
//类表达式（类定义）
//类表达式可以是被命名的或匿名的

/* 匿名类 */ 
let Person = class {
  constructor(x, y) {
    this.x = x
    this.y = y
  }
}
/* 命名的类 */ 
let Person = class Person {
  constructor(x, y) {
    this.x = x
    this.y = y
  }
}

const Mycalss = class Me {
    getClassName(){
        return Me.name;
    }
};  //这里用 表达式(即赋值变量一个) 
    //注意! 这个类的名字是Mycalss而不是 Me Me只在Class的内部代码可用 指代当前类
let inst = new Mycalss();
inst.getClassName()   //Me   
Me.name               //报错  Me只在Class内部有定义  



// 采用class表达式 可以写出立即执行的Class!! 
let person = new class {
    constructor(name) {
       this.name = this.name; 
    }    
    sayname(){
        console.log(this.name);
    }
}("常东东")         //这段代码中class是立即执行的实例  
















</script>